#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>

int main()
{
  printf("stdin->fd:%d\n",stdin->_fileno);
  printf("stdout->fd:%d\n",stdout->_fileno);
  printf("stderr->fd:%d\n",stderr->_fileno);


  FILE* fp=fopen("log.txt","w");
  if(fp==NULL) return 1;
  printf("fd:%d\n",fp->_fileno);

  FILE* fp1=fopen("log1.txt","w");
  if(fp1==NULL) return 1;
  printf("fd:%d\n",fp1->_fileno);

  FILE* fp2=fopen("log2.txt","w");
  if(fp2==NULL) return 1;
  printf("fd:%d\n",fp2->_fileno);

  fclose(fp);
  fclose(fp1);
  fclose(fp2);
  return 0;
}

//int main()
//{
//  int fd1=open("log1.txt",O_WRONLY | O_CREAT,0666);
//  printf("fd1=%d\n",fd1);
//
//  int fd2=open("log2.txt",O_WRONLY | O_CREAT,0666);
//  printf("fd2=%d\n",fd2);
//
//  int fd3=open("log3.txt",O_WRONLY | O_CREAT,0666);
//  printf("fd3=%d\n",fd3);
//
//  int fd4=open("log4.txt",O_WRONLY | O_CREAT,0666);
//  printf("fd4=%d\n",fd4);
//  return 0;
//}


//int main()
//{
//  umask(0);
//  int fd=open("log.txt",O_WRONLY | O_CREAT | O_APPEND,0666);
//  if(fd<0)
//  {
//    perror("open");
//    return 1;
//  }
//
//  const char* p="hello world\n";
//  //const char* p="aaaa";
//  write(fd,p,strlen(p));
//
//  close(fd);
//  return 0;
//}



//#define ONE   1     //1  0000 0001
//#define TWO   1<<1  //2  0000 0010
//#define THREE 1<<2  //4  0000 0100
//#define FOUR  1<<3  //8  0000 1000
//
//void Print(int flags)
//{
//  if(flags & ONE)
//    printf("ONE\n");
//  if(flags & TWO)
//    printf("TWO\n");
//  if(flags & THREE)
//    printf("THREE\n");
//  if(flags & FOUR)
//    printf("FOUR\n");
//}
//  
//int main()
//{
//  Print(ONE);
//  printf("\n");
//
//  Print(TWO);
//  printf("\n");
//
//  Print(THREE | FOUR);
//  printf("\n");
//
//  Print(ONE | TWO | THREE | FOUR);
//  printf("\n");
//  return 0;
//}




//int main()
//{
//  FILE* fp=fopen("log.txt","a");
//  if(fp==NULL)
//  {
//    perror("fopen");
//    return 1;
//  }
//  fprintf(fp,"xxxxxxx\n");
//  fclose(fp);
//
//  return 0;
//}
